A resistance-change memory such as a ReRAM stores data in memory cells by bringing the memory cells to a high-resistance state or a low-resistance state. For example, when a SET voltage is applied to a bit line while keeping a word line at a low-level voltage Vss, a relevant memory cell is changed from a high-resistance state (a RESET state) to a low-resistance state (a SET state).
However, a large cell current flows in a memory cell when the memory cell becomes a low-resistance state and thus, when a SET state is to be simultaneously written to a large number of memory cells, the peak (the maximum value) of a consumption current is increased. Furthermore, when a SET state is to be written to a plurality of memory cells connected to a selected word line, a large current flows in some memory cells that have been previously brought to a SET state from corresponding bit lines to the word line and accordingly the potential of the word line is raised. In this case, a voltage applied to other memory cells to which a SET state is not yet written is lowered and thus write of data thereto becomes difficult. Therefore, it is desirable to suppress the peak (the maximum value) of a current flowing in memory cells to a low level when data is to be written to the memory cells.